<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>

        	//集合：表示无重复数值的有序列表
        // let set = new Set();
        // set.add("张三");
        // set.add(666);
        // set.add("狗蛋");
        // set.add("狗蛋");
        // set.add("狗蛋");
        // set.add("狗蛋");
        // 值就是键,键就是值，因此一般不用forEach遍历
        // console.log(set);
        // set.forEach((v,k)=>{
        //     console.log(k,v);
        // })
        // for (const v of set) {
        //    console.log(v);
        // }
        // var arr = [...set];
        // console.log(arr);
        // 1.set中对象的引用无法被释放
            // let set2 = new Set();
            let obj = {
                "name":"张三"
            }
            let obj2 = {
                "age":"10"
            }
            // set2.add(obj);
            // set2.add(666);
            //释放对象
            // obj = null;
            // console.log(set2.has(obj));
            // console.log(set2);
            //		怎样才能释放,在定义的时候不能用Set(),使用弱引用WeakSet()
		let set3 = new WeakSet();
		set3.add(obj);
        set3.add(obj2)
		console.log(set3);
        //		释放对象
		obj=null;		
		console.log(set3)
		//WeakSet	
//		1.不能传入非对象类型的参数
//		2.不可迭代
//		3.没有forEach()的许多方法
//		4.没有size属性
//注意:WeakSet了解一下,主要记住set的属性和方法
    </script>
</body>
</html>